﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SG.Domain;

namespace SG.Logic.Stock
{
   public class ExponencialSimple: Exponencial{


    public double CalcularPromedio(double dr, double promAnt, double alpha) {
        return alpha*dr+(1.0-alpha)*promAnt;
    }

    public override  double GenerarPrediccion(Periodo perUltimo, int h)
    {
        return perUltimo.Promedio;
       // return perUltimo.Articulo.Alpha * perUltimo.Demanda + (1.0 - perUltimo.Articulo.Alpha) * perUltimo.Promedio;

    }
       
    public override void ActualizarPeriodo(Periodo anterior, Periodo nuevo)
    {
        _prom = CalcularPromedio(nuevo.Demanda, anterior.Promedio, anterior.Articulo.Alpha);
        nuevo.Promedio=_prom;
        CalcularErrores(anterior, nuevo);
    }


    public override double CalcularDesviacionEst(double mseAct)
    {
        return (Math.Sqrt(mseAct)*Math.Sqrt(_alpha)/(2.0-_alpha));
    }
}
}
